/******************************************************************************
 * (C) Copyright 2013 Atech-Automotive
 * FILE NAME:    Common_H.h
 * DESCRIPTION:
 * 
 * DATE BEGUN:   2015/08/26
 * BY:           hui.pang
 * PRODUCT NAME:
 * APPLICATION:
 * TARGET H/W:
 * DOC REF:
 *****************************************************************************
 */

#ifndef _COMMON_H_H_
#define _COMMON_H_H_

/*****************************************************************************
**  typedef
*****************************************************************************/
typedef struct
{	
	/* 00 */ UINT8 sw_last_version[8];
	/* 01 */ UINT8 reprogram_counter[8];
	/* 02 */ UINT8 reprogram_date[8];
			 
	/* 03 */ UINT8 sw_release_date[8];
	/* 04 */ UINT8 sw_version[8];
	/* 05 */ UINT8 hw_version[8];
			 
	/* 06 */ UINT8 OEM_Name[8];
	/* 07 */ UINT8 Product_Type[8]; 
	/* 08 */ UINT8 Project_Name[8];
			 
	/* 09 */ UINT8 reserve_1[8];	
	/* 10 */ UINT8 reserve_2[8];	
	/* 11 */ UINT8 reserve_3[8];	
	/* 12 */ UINT8 reserve_4[8];	
	/* 13 */ UINT8 reserve_5[8];	
	/* 14 */ UINT8 reserve_6[8];
			 
	/* 15 */ UINT8 checksum[8];	

}SW_INFO_S;

/*****************************************************************************
**#include 
*****************************************************************************/
#include "system.h"
#include "sys_config.h"
/*****************************************************************************
** Constant Macro Definition
*****************************************************************************/
#define INFO_SW_RELEASE_DATE '0' + VER_YEAR / 10,\
	                    	 '0' + VER_YEAR % 10,  \
	                   	  	 '.',                 \
	                    	 '0' + VER_MONTH / 10, \
		                     '0' + VER_MONTH % 10, \
		                     '.',                  \
		                     '0' + VER_DAY / 10,   \
		                     '0' + VER_DAY % 10    \
	                         

#define INFO_SW_VERSION  '0' + VER_ID / 10,      \
	                     '0' + VER_ID % 10,      \
	                     '.',                    \
	                     '0' + VER_ID_TEST / 10, \
	                     '0' + VER_ID_TEST % 10, \
	                     '.',                    \
	                     '.',                    \
	                     '.'                    \
//	                     '0' + VER_ID_TEMP / 10, \
//	                     '0' + VER_ID_TEMP % 10

#define INFO_HW_VERSION  '0' + VER_HW / 10,      \
	                     '0' + VER_HW % 10,      \
	                     '.',                    \
	                     '.',                    \
	                     '.',                    \
	                     '.',                    \
	                     '.',                    \
	                     '.'

#define INFO_OEM_NAME         'Z', 'O', 'T', 'Y', 'E', '.', '.', '.'

#define INFO_PRODUCTION_TYPE  'P', 'E', 'P', 'S', '.', '.', '.', '.'

#define INFO_PROJECT_NMAE     'B', '1', '1', 'B', '.', '.', '.', '.'

#define INFO_RESERVE     0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF


/*****************************************************************************
** System Macro Definition
*****************************************************************************/


/*****************************************************************************
** Action Macro Definition
*****************************************************************************/


/*****************************************************************************
** Config Macro Definition
*****************************************************************************/


/*****************************************************************************
** Task Macro Definition
*****************************************************************************/


/*****************************************************************************
** Variables
*****************************************************************************/
#pragma DATA_SEG  INFO_ROM		
extern const SW_INFO_S c_st_sw_info;		
#pragma DATA_SEG  DEFAULT


/*****************************************************************************
** Constants
*****************************************************************************/


/*****************************************************************************
** Function prototypeseb
*****************************************************************************/
/****************************************************************************/
/**
 * Function Name: Common_CopyData
 * Description: none
 *
 * Param:   none
 * Return:  none
 * Author:  2015/08/26, hui.pang create this function
 ****************************************************************************/
void Common_CopyData( UINT8 * p_u8_dest, UINT8 * p_u8_src, UINT16 u16_length );

/****************************************************************************/
/**
 * Function Name: Common_SetData
 * Description: none
 *
 * Param:   none
 * Return:  none
 * Author:  2015/08/26, hui.pang create this function
 ****************************************************************************/
void Common_SetData( UINT8 * p_8_data, UINT8 u8_set_data, UINT16 u16_length );

/*****************************************************************************
** other
*****************************************************************************/


/****************************************************************************/

#endif	//_COMMON_H_H_

/*****************************************************************************
** End File
*****************************************************************************/

